Computer-readable storage medium, coordinate processing apparatus, coordinate processing system, and coordinate processing method

ABSTRACT

A value of a finger degree variable representing a degree of likelihood of a finger is updated at, all times in accordance with whether the shape of an input trajectory represented by input coordinate data is a predetermined shape, whether a continuous contact time indicated by input coordinate data is less than a predetermined time, or whether or not a continuous non-contact time indicated by input coordinate data is less than a predetermined time. A degree of smoothening the shape of the input trajectory is changed in response to the value of the finger degree variable.

CROSS REFERENCE TO RELATED APPLICATION

The disclosure of Japanese Patent Application No. 2011-237854, filed onOct. 28, 2011, is incorporated herein by reference.

FIELD

The technology disclosed herein relates to a computer-readable storagemedium, a coordinate processing apparatus, a coordinate processingsystem, and a coordinate processing method, and particularly relates toa computer-readable storage medium, a coordinate processing apparatus, acoordinate processing system, and a coordinate processing method forprocessing input coordinate data which is outputted from a coordinateinput device and indicates a contact position of a finger or pen on anoperation surface of the coordinate input device.

BACKGROUND AND SUMMARY

Conventionally, there is technology to reduce fluctuation of coordinatedata outputted from a coordinate input device such as a touch panel. Forexample, there is conventional technology in which weighted averaging oflast corrected coordinate data and latest coordinate data is performedto generate latest corrected coordinate data.

However, the technology to reduce fluctuation of coordinate data has afundamental demerit that responsiveness to an operation of an operatordecreases. Thus, when fluctuation of coordinate data does not occur, itis preferred not to use the technology to reduce fluctuation ofcoordinate data.

It is a feature of the technology disclosed herein to provide acomputer-readable storage medium, a coordinate processing apparatus, acoordinate processing system, and a coordinate processing method whichcan appropriately process input coordinate data which is outputted froma coordinate input device and indicates a contact position of a fingeror a pen with respect to an operation surface of the coordinate inputdevice.

The feature described above is attained by, for example, the followingconfiguration examples.

A first configuration example is a computer-readable storage mediumhaving stored therein a coordinate processing program for processinginput coordinate data which is outputted from a coordinate input deviceand indicates a contact position with respect to an operation surface ofthe coordinate input device. The coordinate processing program causes acomputer to operate as: a determination section configured to determinean input element which is in contact with the operation surface fromamong a plurality of types of input elements having different contactareas with the operation surface; and a coordinate corrector configuredto correct the input coordinate data in accordance with a result of thedetermination of the determination section.

The “coordinate input device” may be any device which is capable ofdetecting a contact position of an input element (a finger, a pen, etc.)with respect to an operation surface thereof, and is typically a touchpanel. The “plurality of types of input elements having differentcontact areas on the operation surface” are, for example, a finger and apen. The determination section is not limited to one which uniquelydetermines a type of input element which is in contact with theoperation surface (e.g., whether it is a finger or a pen), and may beone which determines a degree of likelihood of a finger (or a degree oflikelihood of a pen).

The coordinate processing program can be stored in any computer-readablestorage medium (e.g., a flexible disc, a hard disk, an optical disc, amagneto-optical disc, a CD-ROM, a CD-R, a magnetic tape, a semiconductormemory card, a ROM, a RAM, etc.).

The coordinate corrector may include a shape corrector configured tocorrect the input coordinate data such that a shape of an inputtrajectory represented by the input coordinate data is smoothened. Theshape corrector may correct the input coordinate data at a degree whichchanges in response to the result of the determination of thedetermination section, such that the shape of the input trajectory issmoothened.

Further, the shape corrector may correct the input coordinate data inaccordance with the result of the determination of the determinationsection, such that responsiveness to variation of the contact positionchanges.

Further, the shape corrector may include a following coordinatecalculator configured to calculate a following coordinate which followsa target coordinate, which is set on the basis of the input coordinatedata, at a rate which changes in response to the result of thedetermination of the determination section. The coordinate corrector maycorrect the input coordinate data on the basis of the followingcoordinate.

Further, when it is determined by the determination section that a firstinput element having a relatively large contact area is in contact withthe operation surface, the following coordinate calculator may calculatethe following coordinate such that the following coordinate follows thetarget coordinate at a smaller rate than that when it is determined thata second input element having a relatively small contact area is incontact with the operation surface.

Further, the following coordinate may follow the target coordinate bybeing updated such that the following coordinate approaches the targetcoordinate by a predetermined rate of a distance from the followingcoordinate to the target coordinate.

Further, the target coordinate may be an allowance coordinate which,when being distant from an input coordinate indicated by the inputcoordinate data by more than a distance which changes in response to theresult of the determination of the determination section, moves towardthe input coordinate so as to be located at a position away from theinput coordinate by the distance.

Further, the shape corrector may include an allowance coordinatecalculator configured to calculate an allowance coordinate which, whenbeing distant from an input coordinate indicated by the input coordinatedata by more than a distance which changes in response to the result ofthe determination of the determination section, moves toward the inputcoordinate so as to be located at a position away from the inputcoordinate by the distance. The coordinate corrector may correct theinput coordinate data on the basis of the allowance coordinate.

Further, when it is determined by the determination section that a firstinput element having a relatively large contact area is in contact withthe operation surface, the allowance coordinate calculator may increasethe distance as compared to that when it is determined that a secondinput element having a relatively small contact area is in contact withthe operation surface, and may calculate the allowance coordinate.

Further, the coordinate corrector may include an interruptioncompensator configured to, when a period during which a contact positionindicated by the input coordinate data is temporarily interrupted iswithin a predetermined time, determine that contact continues evenduring the period and correct the input coordinate data. Theinterruption compensator may change the predetermined time in responseto the result of the determination of the determination section.

Further, when it is determined by the determination section that a firstinput element having a relatively large contact area is in contact withthe operation surface, the interruption compensator may increase thepredetermined time as compared to that when it is determined that asecond input element having a relatively small contact area is incontact with the operation surface, and may correct the input coordinatedata.

Further, the coordinate corrector may correct the input coordinate datain real time.

Further, the determination section may determine whether the inputelement which is in contact with the operation surface is a finger or apen, on the basis of the input coordinate data outputted from thecoordinate input device.

It is noted that the “pen” may be any operation means having at least aprojection having a shape similar to the shape of a pointed end of apen.

Further, the determination section may include a finger degree variableupdate section configured to update a value of a finger degree variablerepresenting a degree of likelihood of a finger, on the basis of theinput coordinate data outputted from the coordinate input device. Thecoordinate corrector may correct the input coordinate data in accordancewith the value of the finger degree variable.

Further, the determination section may determine whether the inputelement which is in contact with the operation surface is a finger or apen, on the basis of whether or not a shape of an input trajectoryrepresented by the input coordinate data outputted from the coordinateinput device is a predetermined shape.

Further, the determination section may determine whether the inputelement which is in contact with the operation surface is a finger or apen, on the basis of whether or not a continuous contact time indicatedby the input coordinate data outputted from the coordinate input deviceis less than a predetermined time.

Further, the determination section may determine whether the inputelement which is in contact with the operation surface is a finger or apen, on the basis of whether or not a continuous non-contact timeindicated by the input coordinate data outputted from the coordinateinput device is less than a predetermined time.

A second configuration example is a coordinate processing apparatus forprocessing input coordinate data which is outputted from a coordinateinput device and indicates a contact position with respect to anoperation surface of the coordinate input device. The coordinateprocessing apparatus comprises: a determination section configured todetermine an input element which is in contact with the operationsurface from among a plurality of types of input elements havingdifferent contact areas with the operation surface; and a coordinatecorrector configured to correct the input coordinate data in accordancewith a result of the determination of the determination section.

A third configuration example is a coordinate processing system forprocessing input coordinate data which is outputted from a coordinateinput device and indicates a contact position with respect to anoperation surface of the coordinate input device. The coordinateprocessing system comprises: a determination section configured todetermine an input element which is in contact with the operationsurface from among a plurality of types of input elements havingdifferent contact areas with the operation surface; and a coordinatecorrector configured to correct the input coordinate data in accordancewith a result of the determination of the determination section.

A fourth configuration example is a coordinate processing methodexecuted by a computer of a coordinate processing system for processinginput coordinate data which is outputted from a coordinate input deviceand indicates a contact position with respect to an operation surface ofthe coordinate input device. The coordinate processing method comprisesthe steps of: determining an input element which is in contact with theoperation surface from among a plurality of types of input elementshaving different contact areas with the operation surface; andcorrecting the input coordinate data in accordance with a result of thedetermination.

According to the technology, it is possible to appropriately processinput coordinate data which is outputted from a coordinate input deviceand indicates a contact position of a finger or a pen with respect to anoperation surface of the coordinate input device.

These and other objects, features, aspects and advantages of thetechnology will become more apparent from the following detaileddescription of non-limiting example embodiments when taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram showing a non-limiting example of a coordinateprocessing system;

FIG. 2 is a diagram showing a non-limiting example of input coordinatesby a pen;

FIG. 3 is a diagram showing a non-limiting example of input coordinatesby a finger;

FIG. 4 is a diagram showing a non-limiting example of input coordinates;

FIG. 5 is a diagram showing a non-limiting example of allowancecoordinates which are set in accordance with input coordinates;

FIG. 6 is a diagram showing a non-limiting example of followingcoordinates which are set in accordance with the allowance coordinates;

FIG. 7 is a diagram showing a non-limiting example of allowancecoordinates and following coordinates when interruption of an inputcoordinate occurs;

FIG. 8 is a diagram showing a non-limiting example of input coordinatesby a finger and following coordinates corresponding to the inputcoordinates;

FIG. 9 is a diagram showing a non-limiting example of input coordinatesby a pen and following coordinates corresponding to the inputcoordinates;

FIG. 10 is a diagram showing a non-limiting example of speedcoordinates;

FIG. 11 is a diagram showing a non-limiting example of data stored in aRAM;

FIG. 12 is a non-limiting portion of a flowchart showing a flow ofcoordinate processing;

FIG. 13 is a non-limiting remaining portion of the flowchart showing theflow of the coordinate processing;

FIG. 14 is a diagram showing a non-limiting example of a method forcalculating an allowance radius;

FIG. 15 is a diagram showing a non-limiting example of a method fordetermining a zigzag shape;

FIG. 16 is a diagram showing a non-limiting example of a method forcalculating a following rate;

FIG. 17 is a diagram showing a non-limiting modification of a method forsetting a following coordinate; and

FIG. 18 is a diagram showing a non-limiting modification of a method forcorrecting an input coordinate.

DETAILED DESCRIPTION OF NON-LIMITING EXAMPLE EMBODIMENTS

In FIG. 1, a coordinate processing system 10 includes a touch panel 12,an information processing apparatus 14, a display device 16, and anexternal storage unit 24.

The touch panel 12 periodically detects a contact position of a fingeror a pen with respect to an operation surface thereof and outputscoordinate data indicating the contact position, to the informationprocessing apparatus 14 in predetermined cycles. In the exemplaryembodiment, the touch panel 12 is a pressure-sensitive type.

The information processing apparatus 14 includes a processor 18, aninternal storage unit 20, and a main memory 22. In the internal storageunit 20, computer programs which are to be executed by the processor 18are stored. The internal storage unit 20 is typically a hard disk or aROM (Read Only Memory). The main memory 22 temporarily stores computerprograms and other data.

The display device 16 displays an image generated by the informationprocessing apparatus 14, on a screen thereof. The touch panel 12 may beprovided on the screen of the display device 16.

In the external storage unit 24, computer programs which are to beexecuted by the processor 18 are stored. The external storage unit 24 istypically a CD (Compact Disc), a DVD (Digital Versatile Disc), or asemiconductor memory.

It is noted that the configuration of the coordinate processing system10 shown in FIG. 1 is a merely example, and in another embodiment, acoordinate processing system may be, for example, a hand-held gameapparatus including a touch panel.

Next, an outline of coordinate processing executed in the coordinateprocessing system 10 will be described.

FIG. 2 shows a series of coordinates (input coordinates p1 to p18)detected by the touch panel 12 when an operator draws an arc on theoperation surface of the touch panel 12 with a pen. When the touch panel12 is operated with the pen as described above, almost no fluctuationand interruption of the input coordinate occur. Meanwhile, when theoperator draws a similar arc on the operation surface of the touch panel12 with a finger, fluctuation and interruption of the input coordinateoccur as shown in FIG. 3. This is mainly due to the contact area of thefinger with the operation surface being larger than that of the pen. Ingeneral, as a contact area with the operation surface at an inputoperation increases, fluctuation and interruption of the inputcoordinate is more likely to occur. This is because when the contactarea increases, fluctuation of a detected contact position is likely tooccur, and particularly in a pressure-sensitive type coordinate inputdevice, the pressure on the operation surface per unit area decreases asthe contact area increases, and thus it is likely to be erroneouslydetermined that there is no contact, even when there is actuallycontact.

The information processing apparatus 14 performs processing forcompensating for fluctuation and interruption of the input coordinatewhich are described above (coordinate correction processing).Specifically, the information processing apparatus 14 updates an“allowance coordinate” and a “following coordinate” in real time on thebasis of an input coordinate inputted via the touch panel 12, tocompensate for fluctuation and interruption of the input coordinatewhich are described above.

Hereinafter, a method for updating an allowance coordinate when inputcoordinates p1 to p6 are inputted as shown in FIG. 4 will be describedwith reference to FIG. 5.

When the initial input coordinate p1 is inputted, an allowancecoordinate r1 is set so as to have the same values as those of the inputcoordinate p1.

The allowance coordinate which is once set does not change while thedistance therefrom to the latest input coordinate is equal to or lessthan a predetermined distance (an “allowance radius” shown in FIG. 5).Meanwhile, when the distance to the latest input coordinate is largerthan the predetermined distance, the allowance coordinate changes so asto move toward the latest input coordinate such that the distance to thelatest input coordinate agrees with the predetermined distance. It isnoted that as described later, the allowance radius changes in responseto a “finger degree” (a variable indicating a degree of likelihood of afinger) and, for example, in the range of 0 to 30.

In other words, when the input coordinate p2 is inputted, since thedistance between the input coordinate p2 and the allowance coordinate r1is larger than the allowance radius, the allowance coordinate movestoward the input coordinate p2 such that the distance therefrom to theinput coordinate p2 agrees with the allowance radius. In this manner, anallowance coordinate r2 shown in FIG. 5 is set.

When the input coordinate p3 is inputted, since the distance between theinput coordinate p3 and the allowance coordinate r2 is larger than theallowance radius, the allowance coordinate moves toward the inputcoordinate p3 such that the distance therefrom to the input coordinatep3 agrees with the allowance radius. In this manner, an allowancecoordinate r3 shown in FIG. 5 is set.

After that, similarly, each time the input coordinates p4, p5, and p6are inputted, allowance coordinates r4, r5, and r6 are sequentially set.

As is obvious from FIG. 5, an input trajectory represented by theallowance coordinates r1 to r6 is smoother than an input trajectoryrepresented by the input coordinates p1 to p6, and fluctuation of thecoordinate is suppressed.

Next, a method for updating a following coordinate when inputcoordinates p1 to p6 are inputted as shown in FIG. 4 will be describedwith reference to FIG. 6.

When the initial input coordinate p1 is inputted, a following coordinatef1 is set so as to have the same values as those of the input coordinatep1 (i.e., the same values as those of the allowance coordinate r1).

The following coordinate which is once set is updated so as to movetoward the latest allowance coordinate by a predetermined rate (a“following rate” described later) of the distance therefrom to thelatest allowance coordinate. It is noted that as described later, thefollowing rate changes in response to the finger degree and, forexample, in the range of 40% to 100%.

In other words, when the position of an allowance coordinate r2 is set,the following coordinate moves toward the allowance coordinate r2 by thepredetermined rate (the following rate) of the distance between theallowance coordinate r2 and the following coordinate f1. In this manner,a following coordinate f2 shown in FIG. 6 is set.

When the position of an allowance coordinate r3 is set, the followingcoordinate moves toward the allowance coordinate r3 by the predeterminedrate (the following rate) of the distance between the allowancecoordinate r3 and the following coordinate f2. In this manner, afollowing coordinate f3 shown in FIG. 6 is set.

After that, similarly, each time allowance coordinates r4, r5, and r6are set, following coordinates f4, f5, and f6 are sequentially set.

As is obvious from FIG. 6, an input trajectory represented by thefollowing coordinates f1 to f6 is smoother than the input trajectoryrepresented by the allowance coordinates r1 to r6, and fluctuation ofthe coordinate is further suppressed.

It is noted that even when the input coordinate is temporarilyinterrupted, update of the allowance coordinate and the followingcoordinate is performed. A method for updating the allowance coordinateand the following coordinate when the input coordinate is temporarilyinterrupted will be described with reference to FIG. 7.

FIG. 7 is the same as FIG. 5 and FIG. 6 in that each time inputcoordinates p1, p2, p3, and p4 are inputted, allowance coordinates r1,r2, r3, and r4 and following coordinates f1, f2, f3, and f4 aresequentially set.

In the example of FIG. 7, at a timing when an input coordinate p5 is tobe inputted (hereinafter, referred to as timing t5), no input coordinateis inputted. Then, an input coordinate p6 is inputted. The allowancecoordinate and the following coordinate are updated in predeterminedcycles (e.g., in the same cycles as the cycles in which coordinate datais outputted from the touch panel 12), regardless of whether a validinput coordinate is inputted from the touch panel 12. Thus, at timing t5as well, the allowance coordinate and the following coordinate areupdated.

It is noted that in the exemplary embodiment, as described later, theallowance radius gradually decreases while no input coordinate isinputted (S22 in FIG. 12). Thus, at timing t5, the allowance coordinateslightly moves toward the latest input coordinate (i.e., the inputcoordinate p4) such that the distance therefrom to the input coordinatep4 agrees with the allowance radius which has slightly decreased. Inthis manner, an allowance coordinate r5 shown in FIG. 7 is set.

When the allowance coordinate r5 is set, the following coordinate movestoward the allowance coordinate r5 by the predetermined rate (thefollowing rate) of the distance between the allowance coordinate r5 andthe following coordinate f4. In this manner, a following coordinate f5shown in FIG. 7 is set.

As described above, even when the input coordinate p5 is not inputted,the allowance coordinate r5 and the following coordinate f5corresponding to the timing (timing t5) when the input coordinate p5 isto be inputted are set. Thus, even when the input coordinate istemporarily interrupted, interruption of the coordinate can becompensated for (i.e., a coordinate which is to be originally inputtedcan be complemented).

It is noted that in compensating for interruption of the coordinate, ithas to be recognized whether the input coordinate is temporarilyinterrupted or the operator intentionally separates the finger or thepen from the operation surface of the touch panel 12. As a method forrecognizing this, various methods are considered.

In the exemplary embodiment, while the following coordinate moves (moreprecisely, while a moving amount by which the following coordinate movestoward the latest allowance coordinate is larger than a predeterminedamount), it is determined that the operator continues an inputoperation, and coordinate complementation is performed. Then, at a timewhen the following coordinate finally stops (more precisely, at a timewhen a moving amount by which the following coordinate moves toward thelatest allowance coordinate becomes less than the predetermined amount),it is determined that the operator has ended the input operation. Inthis case, as the distance between the allowance coordinate and thefollowing coordinate immediately before the input coordinate isinterrupted increases, the period to the time when it is determined thatthe operator has ended the input operation increases.

In general, when the operator quickly slides the finger or the pen onthe operation surface, the pressure on the operation surface is unstableas compared to that when the operator slowly slides the finger or thepen on the operation surface. Thus, interruption of the input coordinateis likely to occur. In addition, when the operator quickly slides thefinger or the pen on the operation surface, the distance between theallowance coordinate and the following coordinate is large as comparedto that when the operator slowly slides the finger or the pen on theoperation surface. Thus, in the exemplary embodiment, when the operatorquickly slides the finger or the pen on the operation surface, theperiod to the time when it is determined that the operator has ended theinput operation is long as compared to that when the operator slowlyslides the finger or the pen on the operation surface. Thus,interruption of the input coordinate can be effectively compensated for.Further, when the operator slowly slides the finger or the pen on theoperation surface, the period to the time when it is determined that theoperator has ended the input operation decreases. Thus, decrease ofresponsiveness can be suppressed. As a result, favorable operability isobtained for the operator.

As a result of updating the allowance coordinate and the followingcoordinate for the input coordinates p1 to p4, p6 to p10, and p13 to p18shown in FIG. 3 as described above, following coordinates f1 to f21shown in FIG. 8 are obtained. As shown in FIG. 8, the followingcoordinate f1 coincides with the input coordinate p1, and the finalfollowing coordinate f21 substantially coincides with the inputcoordinate p18. In addition, an input trajectory represented by thefollowing coordinates f1 to f21 is smoother than an input trajectoryrepresented by the input coordinates p1 to p4, p6 to p10 and p13 to p18,and is closer to the original input trajectory. Moreover,complementation is performed with the following coordinates f5 and f11to f12 corresponding to periods when the input coordinate is temporarilyinterrupted. Thus, favorable operability is obtained for the operatorwho operates the touch panel 12 with the finger.

Meanwhile, when the allowance coordinate and the following coordinateare updated for the input coordinates p1 to p18 shown in FIG. 2 asdescribed above, following coordinates f1 to f21 shown in FIG. 9 areobtained. However, in this case, there is no fluctuation andinterruption of the input coordinate, and thus an input trajectoryrepresented by the input coordinates p1 to p18 indicates a more accurateinput trajectory than an input trajectory represented by the followingcoordinates f1 to f21 does. Further, as described above, the technologyto reduce fluctuation of coordinate data has a fundamental demerit thatresponsiveness to an operation of an operator decreases, and thus, forexample, the following coordinate f2 corresponding to the inputcoordinate p2 shifts from the input coordinate p2. The same applies tothe following coordinates f3 to f18. Moreover, a timing when it isdetermined that the operator has ended the input operation becomes atiming later than the original timing (i.e., a timing when the inputcoordinate is interrupted), namely, a timing when the followingcoordinate stops moving.

Thus, in consideration of the demerit described above, when the operatoroperates the touch panel 12 with the pen as shown in FIG. 1, it ispreferred not to correct the input coordinate rather than to compensatefor fluctuation and interruption of the input coordinate. Thus, in theexemplary embodiment, a degree of compensating for fluctuation andinterruption of the input coordinate is changed depending on whether theoperator operates the touch panel 12 with the finger or the pen.

Specifically, when it is determined that the operator operates the touchpanel 12 with the finger, the aforementioned allowance radius isincreased and the aforementioned following rate is decreased, and whenit is determined that the operator operates the touch panel 12 with thepen, the aforementioned allowance radius is decreased and theaforementioned following rate is increased. As the allowance radius isincreased, the responsiveness to variation of the contact positiondecreases. Thus, fluctuation of the coordinate is further suppressed.Similarly, as the following rate is decreased, the responsiveness tovariation of the contact position decreases. Thus, fluctuation of thecoordinate is further suppressed. Therefore, not only when the operatoroperates the touch panel 12 with the finger but also when the operatoroperates the touch panel 12 with the pen, favorable operability isobtained for the operator.

It is noted that when it is determined that the operator operates thetouch panel 12 with the pen, the allowance radius is set to 0 and thefollowing rate is set to 100%, whereby the following coordinatecompletely coincides with the input coordinate. Then, when the inputcoordinate is interrupted, the following coordinate does not move atall, and thus at the time of the interruption of the input coordinate,it is immediately determined that the operator has ended the inputoperation.

As a method for determining whether the operator operates the touchpanel 12 with the finger or the pen, various determination methods areconsidered. In the exemplary embodiment, whether the operator operatesthe touch panel 12 with the finger or the pen is not determined bymaking a choice between those two choices. For the determination, avariable (finger degree), which indicates a degree of likelihood of afinger and can be a value in the range of 0.0 to 1.0, is updated at alltimes in accordance with the shape of an input trajectory represented byinput coordinates or a continuous contact time or continuous non-contacttime indicated by input coordinates, and the allowance radius and thefollowing rate are changed in response to the finger degree.

Meanwhile, as described with reference to FIG. 7, while the inputcoordinate is interrupted, the allowance coordinate gradually movestoward the latest input coordinate (i.e., the input coordinate inputtedlast), and the following coordinate moves toward the allowancecoordinate. Thus, unless a new input coordinate is inputted, the movingspeed of the following coordinate (i.e., the moving amount per one time)gradually decreases. This appears in the following coordinates f10 tof12 and the following coordinates f18 to f21 in FIG. 8.

However, in reality, the operator does not decrease or increase themoving speed of the finger during the input operation shown in FIG. 2.Thus, the moving speed of the following coordinate diverges from themoving speed of the finger of the operator. For that reason, in theexemplary embodiment, a method is also provided in which the actualmoving amount (the moving amount per unit time) and the actual movingdirection of the finger of the operator are inferred, and at least whilethe input coordinate is interrupted, the input coordinate iscomplemented by using a vector (inference movement vector) which is seton the basis of the inferred moving amount (inference moving amount) andthe inferred moving direction (inference moving direction). Hereinafter,a coordinate which is set by using an inference movement vector asdescribed above is referred to as “speed coordinate”. It is thought thata speed coordinate more accurately reflects the actual speed of thefinger of the operator as compared to the following coordinate.

As described above, the inference movement vector is a vector which isset on the basis of an inference moving amount and an inference movingdirection. As is obvious from the above description, the followingcoordinate follows the input coordinate late, and thus the moving amountof the following coordinate has low correlation with the actual movingamount of the finger of the operator. Meanwhile, the moving direction ofthe input coordinate has low correlation with the actual movingdirection of the finger of the operator, due to fluctuation of the inputcoordinate. Thus, in the exemplary embodiment, an inference movingamount is calculated on the basis of the moving amount of the inputcoordinate, and an inference moving direction is calculated on the basisof the moving direction of the following coordinate. As a result, it isthought that an inference movement vector which is set on the basis ofthe inference moving amount and inference moving direction calculatedthus more accurately reflects the actual moving amount and movingdirection of the finger of the operator.

Hereinafter, a method for updating a speed coordinate when the inputcoordinates p1 to p4, p6 to p10, and p13 to p18 are inputted as shown inFIG. 3 will be described with reference to FIG. 10.

While input coordinates are inputted without interruption, the speedcoordinate is basically updated so as to coincide with the followingcoordinate. Thus, speed coordinates s8 to s10 coincide with followingcoordinates f8 to f10, respectively.

While the input coordinate is interrupted, the speed coordinate isupdated in accordance with an inference movement vector, independentlyof the following coordinate. In other words, at a timing when an inputcoordinate p11 is to be inputted, the speed coordinate moves inaccordance with the inference movement vector which is set at that time.In this manner, a speed coordinate s11 shown in FIG. 10 is set. Inaddition, at a timing when an input coordinate p12 is to be inputted,the speed coordinate moves in accordance with the inference movementvector which is set at that time. In this manner, a speed coordinate s12shown in FIG. 10 is set.

When input of the input coordinate is restarted, the speed coordinatesequentially moves toward the latest following coordinates, and finallycoincides with the following coordinate again.

As described above, it is thought that the speed coordinate moreaccurately reflects the actual moving amount and moving direction of thefinger of the operator particularly while the input coordinate isinterrupted, as compared to the input coordinate and the followingcoordinate. Therefore, for example, when certain processing is performedon the basis of both the moving speed and the moving direction of thefinger of the operator on the operation surface at a moment, morefavorable operability is obtained for the operator by referring to thespeed coordinate rather than by referring to the input coordinate andthe following coordinate.

Next, an operation of the information processing apparatus 14 whichexecutes the coordinate processing described above will be describedwith reference to FIGS. 11 to 13.

FIG. 11 shows an example of various data stored in the main memory 22 ofthe information processing apparatus 14 when the coordinate processingdescribed above is executed.

A coordinate processing program D10 is a computer program for causingthe processor 18 of the information processing apparatus 14 to executethe coordinate processing described above. The coordinate processingprogram D10 is read from the internal storage unit 20, the externalstorage unit 24, or the like and loaded into the main memory 22.

An input coordinate D11 is data indicating an input coordinate outputtedfrom the touch panel 12, and is typically two-dimensional coordinatevalues representing a contact position on the operation surface of thetouch panel 12. In the exemplary embodiment, in the main memory 22, atleast four input coordinates including a latest input coordinateinputted via the touch panel 12, an input coordinate inputtedimmediately before the latest input coordinate, an input coordinateinputted immediately before the last two input coordinates, and an inputcoordinate inputted immediately before the last three input coordinates,are stored.

An input touch state D12 is data which is outputted from the touch panel12 and indicates whether the operation surface of the touch panel 12 isin a state of being touched (hereinafter, referred to as “touch-onstate” or merely as “ON”) or in a state of not being touched(hereinafter, referred to as “touch-off state” or merely as “OFF”). Itis noted that in a certain type of touch panel, when the inputcoordinate D11 is invalid coordinate values, it can be determined thatthe input touch state is the touch-off state.

An allowance coordinate D13, a following coordinate D14, and a speedcoordinate D15 are data indicating the aforementioned allowancecoordinate, following coordinate, and speed coordinate, respectively,and each are typically two-dimensional coordinate values generated inreal time on the basis of the input coordinate D11 inputted via thetouch panel 12.

A corrected touch state D16 is obtained by reflecting a result of theaforementioned interruption compensation in the input touch state D12.In other words, even when the input touch state D12 temporarily becomesthe touch-off state, the corrected touch state D16 is kept so as to bethe touch-on state, if it is determined that the input operation of theoperator is not interrupted (i.e., interruption of the input coordinateis temporary and touching of the operator on the operation surfaceactually continues).

An allowance radius D17 is a variable used for updating the allowancecoordinate D13 as described above. In the exemplary embodiment, theallowance radius D17 can be a value in the range of 0.0 to 30.0.

A following rate D18 is a variable for updating the following coordinateD14 as described above. In the exemplary embodiment, the following rateD18 can be a value in the range of 40% to 100%.

A finger degree D19 is a variable indicating a degree of likelihood of afinger as described above. In the exemplary embodiment, the fingerdegree D19 can be a value in the range of 0.0 to 1.0.

An inference moving amount D20 is an actual moving amount (a movingamount per unit time) of the finger of the operator, which is inferredon the basis of a moving amount of the input coordinate D11, asdescribed above.

An inference moving direction D21 is an actual moving direction of thefinger of the operator, which is inferred on the basis of a movingdirection of the following coordinate D14, as described above. Theinference moving direction D21 is typically represented as atwo-dimensional vector.

An inference movement vector D22 is a vector which is set on the basisof the inference moving amount D20 and the inference moving directionD21, and is typically a two-dimensional vector having a magnitudeindicated by the inference moving amount D20 and a direction indicatedby the inference moving direction D21.

Next, a flow of the coordinate processing executed by the processor 18of the information processing apparatus 14 on the basis of thecoordinate processing program D10 will be described with reference toflowcharts of FIGS. 12 and 13.

When execution of the coordinate processing program D10 is started, theprocessor 18 performs initial setting at step S10 in FIG. 12. In theinitial setting, a process of setting each variable to an initial value,and the like are performed. For example, the finger degree D19 is set to0.0, the allowance radius D17 is set to 0.0, and the following rate D18is set to 100%.

At step S11, on the basis of a signal from the touch panel 12, theprocessor 18 determines whether the input touch state D12 is ON (in thetouch-on state). Then, when the input touch state D12 is ON, theprocessing proceeds to step S12. When the input touch state D12 is notON, the processing proceeds to step S22.

At step S12, on the basis of a signal from the touch panel 12, theprocessor 18 obtains the input coordinate D11.

At step S13, the processor 18 updates the allowance radius D17 inaccordance with the finger degree D19. Specifically, as the fingerdegree D19 increases (i.e., as the degree of likelihood of a fingerincreases), the processor 18 increases the allowance radius D17. Forexample, the processor 18 calculates the allowance radius D17 from thefinger degree D19 by using a function shown in FIG. 14.

At step S14, the processor 18 decreases the finger degree D19. Forexample, the processor 18 multiplies the finger degree D19 by 0.98.

At step S15, the processor 18 determines whether the touch-off state hasended in a short time. Specifically, for example, the processor 18counts the number of continuous times of the touch-off state of theinput touch state D12 (i.e., a continuous non-contact time), anddetermines that the touch-off state has ended in a short time, if thenumber of continuous times is equal to or less than a predeterminednumber (e.g., 2) at the time when the input touch state D12 changes fromthe touch-off state to the touch-on state.

A situation where the touch-off state has ended in a short time asdescribed above does not occur during a normal and appropriate inputoperation, and if such a situation occurs, there is the possibility thattemporary interruption of the input coordinate has occurred due to anoperation with the finger on the touch panel 12.

When it is determined that the touch-off state has ended in a shorttime, the processing proceeds to step S16. When it is not determinedthat the touch-off state has ended in a short time, the processingproceeds to step S17.

At step S16, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19.

At step S17, the processor 18 determines whether or not the touch-onstate is continuing two consecutive times or more. Specifically, forexample, the processor 18 counts the number of continuous times of thetouch-on state of the input touch state D12 (i.e., a continuous contacttime), and determines whether the number of continuous times is equal toor more than 2. When it is determined that the touch-on state iscontinuing two consecutive times or more, the processing proceeds tostep S18. When it is not determined that the touch-on state iscontinuing two consecutive times or more, the processing proceeds tostep S25.

At step S18, the processor 18 updates the inference moving amount D20 onthe basis of the latest input coordinate and the input coordinateimmediately previous to the latest input coordinate. Specifically, forexample, where the inference moving amount D20 before update is A; andthe inference moving amount D20 after update is A′; and the distancebetween the latest input coordinate and the immediately previous inputcoordinate is B, it is satisfied that A′=A+(B−A)×C. C is a predeterminedcoefficient (e.g., 0.2).

At step S19, the processor 18 determines whether the touch-on state iscontinuing four consecutive times or more. Specifically, for example,the processor 18 counts the number of continuous times of the touch-onstate of the input touch state D12 (i.e., a continuous contact time),and determines whether the number of continuous times is equal to ormore than 4. When it is determined that the touch-on state is continuingfour consecutive times or more, the processing proceeds to step S20.When it is not determined that the touch-on state is continuing fourconsecutive times or more, the processing proceeds to step S30 in FIG.13.

At step S20, the processor 18 determines whether the shape representedby the input coordinate D11 is a zigzag shape. Specifically, forexample, the processor 18 determines whether or not the shape of aninput trajectory represented by the last four input coordinates is azigzag shape. For example, in FIG. 15, when an input coordinate pa, aninput coordinate pb, an input coordinate pc, and an input coordinate pdare inputted in order, the processor 18 calculates an inner product of:a unit vector which is a vector Vad connecting the input coordinate pato the input coordinate pd; and a unit vector which is a vector Vbcconnecting the input coordinate pb to the input coordinate pc. Then,when the inner product is less than a predetermined value (e.g., 0.8),namely, when the angle formed between the line segment connecting theinput coordinate pa to the input coordinate pd and the line segmentconnecting the input coordinate pb to the input coordinate pc is morethan a predetermined angle, the processor 18 determines that the shapeof the input trajectory represented by these four input coordinates pato pd is a zigzag shape.

During a normal and appropriate input operation, the shape of the inputtrajectory represented by the last four input coordinates hardly becomesa zigzag shape. Thus, there is a high possibility that such a zigzagshape is caused by fluctuation of the input coordinate which occurs dueto an operation with the finger on the touch panel 12.

In order to prevent an input trajectory from being determined as azigzag shape by slight variation of a contact position in a state whenthe contact position almost does not move, for example, it may bedetermined that the input trajectory is not a zigzag shape, when themagnitude of at least either one of the vector Vad or the vector Vbc isequal to or less than a predetermined threshold.

When it is determined that the shape represented by the input coordinateD11 is a zigzag shape, the processing proceeds to step S21. When it isnot determined that the shape represented by the input coordinate D11 isa zigzag shape, the processing proceeds to step S30 in FIG. 13.

At step S21, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19. Then, the processingproceeds to step S30 in FIG. 13.

At step S22, the processor 18 decreases the allowance radius D17. Forexample, the processor 18 subtracts 3.0 from the allowance radius D17.

At step S23, the processor 18 determines whether the touch-on state hasended in a short time. Specifically, for example, the processor 18counts the number of continuous times of the touch-on state of the inputtouch state D12 (i.e., a continuous contact time), and determines thatthe touch-off state has ended in a short time, if the number ofcontinuous times is equal to or less than a predetermined number (e.g.,2) at the time when the input touch state D12 changes from the touch-onstate to the touch-off state.

A situation where the touch-on state has ended in a short time asdescribed above does not occur during a normal and appropriate inputoperation, and if such a situation occurs, there is the possibility thattemporary interruption of the input coordinate has occurred due to anoperation with the finger on the touch panel 12.

When it is determined that the touch-on state has ended in a short time,the processing proceeds to step S24. When it is not determined that thetouch-on state has ended in a short time, the processing proceeds tostep S25.

At step S24, the processor 18 increases the finger degree D19.Specifically, for example, the processor 18 adds a predeterminedconstant (e.g., 0.6) to the finger degree D19.

At step S25, the processor 18 decreases the inference moving amount D20.Specifically, for example, the processor 18 multiplies the inferencemoving amount D20 by 0.98. Then, the processing proceeds to step S30 inFIG. 13.

At step S30 in FIG. 13, the processor 18 updates the following rate D18in accordance with the finger degree D19. Specifically, as the fingerdegree D19 increases (i.e., the degree of likelihood of a fingerincreases), the processing 18 decreases the following rate D18. Forexample, the processor 18 calculates the following rate D18 from thefinger degree D19 by using a function shown in FIG. 16.

At step S31, the processor 18 determines whether the corrected touchstate D16 is OFF (in the touch-off state) and the input touch state D12is ON (in the touch-on state). A situation where the corrected touchstate D16 is OFF and the input touch state D12 is ON means that theoperator initially contacts the operation surface with the finger or thepen, or that after intentionally separating the finger or the pen fromthe operation surface, the operator contacts the operation surface withthe finger or the pen again in order to make a new input. When a resultof the determination at step S31 is positive, the processing proceeds tostep S32. When the result of the determination at step S31 is negative,the processing proceeds to step S34.

At step S32, the processor 18 updates the allowance coordinate D13, thefollowing coordinate D14, and the speed coordinate D15 to the samecoordinate as the latest input coordinate D11.

At step S33, the processor 18 initializes the inference moving amountD20, the inference moving direction D21, and the inference movementvector D22. Specifically, the processor 18 initializes the inferencemoving amount D20 to be 0, and initializes the inference movingdirection D21 and the inference movement vector D22 to be zero vectors.

At step S34, the processor 18 updates the allowance coordinate D13 inaccordance with the allowance radius D17. Specifically, when thedistance between the latest input coordinate and the allowancecoordinate D13 is larger than the allowance radius D17, the processor 18changes the allowance coordinate D13 so as to move the allowancecoordinate D13 toward the latest input coordinate such that the distancebetween the latest input coordinate and the allowance coordinate D13agrees with the allowance radius D17. It is noted that when the distancebetween the latest input coordinate and the allowance coordinate D13 isequal to or smaller than the allowance radius D17, the processor 18 doesnot change the values of the allowance coordinate D13.

At step S35, the processor 18 updates the following coordinate D14 inaccordance with the following rate D18. Specifically, the processor 18updates the following coordinate D14 such that the following coordinateD14 moves toward the allowance coordinate D13 by a distance obtained bymultiplying, by the following rate D18, the distance between thefollowing coordinate D14 and the allowance coordinate D13 updated atstep S34.

At step S36, the processor 18 updates the inference moving direction D21on the basis of the latest following coordinate and the followingcoordinate immediately previous to the latest following coordinate.Specifically, for example, where the inference moving direction D21before update is V; the inference moving direction D21 after update isV′; and a vector connecting the latest following coordinate to theimmediately previous following coordinate is v, it is satisfied thatV′=V+(v−V)×D. D is a predetermined constant (e.g., 0.3).

At step S37, the processor 18 determines whether the input touch stateD12 is ON. Then, when the input touch state D12 is ON, the processingproceeds to step S39. When the input touch state D12 is not ON, theprocessing proceeds to step S38.

At step S38, the processor 18 determines whether the followingcoordinate has moved by a predetermined distance or more. Specifically,for example, the processor 18 determines whether the distance betweenthe latest following coordinate and the following coordinate immediatelyprevious to the latest following coordinate is equal to or larger than apredetermined distance (e.g., 0.1). When it is determined that thefollowing coordinate has moved by the predetermined distance or more,the processing proceeds to step S39. When it is not determined that thefollowing coordinate has moved by the predetermined distance or more,the processing proceeds to step S41. It is noted that instead ofdetermining whether the following coordinate has moved by thepredetermined distance or more, the processor 18 may determine whetherthe following coordinate has stopped (in other words, whether thefollowing coordinate has reached a target coordinate).

At step S39, the processor 18 updates the corrected touch state D16 tobe ON (in the touch-on state). By so doing, even when the input touchstate D12 is OFF, while the following coordinate moves (excluding thecase where the following coordinate moves at a very low speed), it isdetermined that the input operation of the operator is not interrupted(i.e., interruption of the input coordinate is temporary and touching ofthe operator on the operation surface actually continues).

At step S40, the processor 18 updates the inference movement vector D22on the basis of the inference moving amount D20 and the inference movingdirection D21.

At step S41, the processor 18 updates the corrected touch state D16 tobe OFF (in the touch-on state).

At step S42, the processor 18 determines whether the input touch stateD12 is ON. Then, when the input touch state D12 is ON, the processingproceeds to step S43. When the input touch state D12 is not ON, theprocessing proceeds to step S44.

At step S43, the processor 18 updates the speed coordinate D15 inaccordance with the latest following coordinate D14. Specifically, forexample, the processor 18 counts the number of continuous times of thetouch-on state of the input touch state D12. Where the number ofcontinuous times is N (note that the upper limit is 10); the latestfollowing coordinate D14 is F; the speed coordinate D15 before update isS; and the speed coordinate D15 after update is S′, it is satisfied thatS′=S+(F−S)×N/10. In other words, when the number of continuous times ofthe touch-on state is 0 to 9, the speed coordinate D15 approaches thefollowing coordinate D14 so as to coincide with the following coordinateD14, and when the number of continuous times of the touch-on state is 10or more, the speed coordinate D15 always coincides with the followingcoordinate D14.

At step S44, the processor 18 updates the speed coordinate D15 inaccordance with the inference movement vector D22. Specifically, theprocessor 18 updates the speed coordinate D15 such that the speedcoordinate D15 moves in the moving direction indicated by the inferencemovement vector D22 and by the moving amount indicated by the inferencemovement vector D22.

When the process at step S43 or step S44 ends, the processing returns tostep S11 in FIG. 12, and the processing described above is repeated inpredetermined cycles (e.g., in the same cycles as the cycles in whichcoordinate data is outputted from the touch panel 12).

As described above, the following coordinate D14 and the speedcoordinate D15, which are updated in real time in accordance with theinput coordinate data outputted from the touch panel 12, can be used foroptional purposes as coordinates (corrected coordinates) resulting fromcompensation of fluctuation and interruption of the input coordinate. Itis noted that only either one of the following coordinate D14 or thespeed coordinate D15 may be used depending on a purpose. The followingcoordinate D14 tends to more accurately reflect the shape of atrajectory drawn by the operator as compared to the speed coordinateD15, and thus is suitable for, for example, a purpose of displaying theshape of a trajectory drawn by the operator on the screen of the displaydevice 16. Meanwhile, the speed coordinate D15 tends to more accuratelyreflect a moving direction and a moving speed of the finger or the penas compared to the following coordinate D14, and thus is suitable, forexample, for a purpose of moving an object displayed on the screen ofthe display device 16, such as a character, an icon, or a window, inaccordance with a moving direction and a moving speed of the finger orthe pen.

Similarly to the following coordinate D14 and the speed coordinate D15,other data (such as the allowance coordinate D13, the corrected touchstate D16, the finger degree D19, and the inference movement vectorD22), which is updated in real time in accordance with the inputcoordinate data outputted from the touch panel 12, can also be used foroptional purposes. For example, when the touch panel 12 is provided onthe screen of the display device 16, the size of an icon, a menu button,a hand-writing input box, or the like displayed on the screen may bechanged in response to the finger degree D19. For example, by increasingtheir sizes as the finger degree D19 increases, when an operation isperformed with the finger, the operability improves, and when anoperation is performed with the pen, an amount of information which canbe displayed on the screen is increased and the limited display area canbe effectively used. In addition, similarly to the speed coordinate D15,the inference movement vector D22 is suitable for a purpose of moving anobject displayed on the screen of the display device 16, such as acharacter, an icon, or a window, in accordance with a moving directionand a moving speed of the finger or the pen.

The exemplary embodiment described above is merely one embodiment, andvarious modifications are considered.

For example, in the exemplary embodiment described above, the followingcoordinate D14 is updated so as to follow the allowance coordinate D13as a target coordinate. However, in another embodiment, as shown in FIG.17, the following coordinate D14 may be updated so as to follow theinput coordinate D11 as a target coordinate, without using the allowancecoordinate D13. In this case as well, in FIG. 17, an input trajectoryrepresented by following coordinates f1 to f6 is smoother than the inputtrajectory represented by input coordinates p1 to p6, and fluctuation ofthe coordinate is suppressed.

Further, in the exemplary embodiment described above, fluctuation of thecoordinate is compensated for by using the following coordinate D14.However, in another embodiment, fluctuation of the coordinate may becompensated for by using only the allowance coordinate D13, or by usinganother compensation method. For example, as shown in FIG. 18,fluctuation of the coordinate may be compensated for by using an averagecoordinate obtained by averaging the last three input coordinates. Forexample, in FIG. 18, an average coordinate a3 is a coordinate obtainedby averaging input coordinates p1 to p3, and an average coordinate a4 isa coordinate obtained by averaging the input coordinates p2 to p4. Inthis case, by changing the number of input coordinates which are to beaveraged, a degree of compensating fluctuation of the coordinate (i.e.,responsiveness to variation of a contact position) can be changed. Thus,for example, by setting the number of input coordinates, which are to beaveraged, to 1 when the finger degree D19 is 0, and increasing thenumber of input coordinates, which are to be averaged, as the fingerdegree D19 increases, an effect similar to that in the exemplaryembodiment described above is obtained.

Further, in the exemplary embodiment described above, whether touchingof the operator on the operation surface continues is determined on thebasis of the moving amount (the moving amount per unit time) of thefollowing coordinate, and interruption of the coordinate is compensatedfor (i.e., a coordinate which is to be originally inputted iscomplemented). However, in another embodiment, whether touching of theoperator on the operation surface continues may be determined on thebasis of an elapsed time from interruption of the input coordinate. Forexample, until the elapsed time from interruption of the inputcoordinate exceeds a predetermined reference time, it may be determinedthat touching of the operator on the operation surface continues, andwhen the elapsed time exceeds the predetermined reference time, it maybe determined that the touching of the operator on the operation surfacehas ended. In addition, the reference time may be changed in real timein response to the finger degree D19 or the inference moving amount D20.For example, by setting the reference time to 0 when the finger degreeD19 is 0 and increasing the reference time as the finger degree D19increases, an effect similar to that in the exemplary embodimentdescribed above is obtained. In addition, interruption of the coordinateis likely to occur when the operator quickly moves the finger, and thus,for example, by setting the reference time to 0 when the inferencemoving amount D20 (i.e., the value obtained by inferring the actualmoving amount of the finger of the operator) is 0 and increasing thereference time as the inference moving amount D20 increases, an effectsimilar to that in the exemplary embodiment described above is obtained.

Further, in the exemplary embodiment described above, the degree ofcorrecting a coordinate is adjusted by using the finger degree D19.However, in another embodiment, whether the operator performs anoperation with the finger or the pen may be determined by making achoice between these two choices, and the degree of correcting acoordinate may be changed between two levels in accordance with a resultof the determination. For example, when it is determined that theoperator performs an operation with the finger, coordinate correctionmay be performed, and when the operator performs an operation with thepen, coordinate correction may not be performed.

Further, in the exemplary embodiment described above, the finger degreeD19 is updated on the basis of the shape of the input trajectoryrepresented by the input coordinates, the continuous contact time, andthe continuous non-contact time, but the method for updating the fingerdegree D19 is not limited thereto. For example, when a touch panel whichis capable of detecting a contact area with an operation surface thereofis used, the finger degree D19 may be updated in real time in accordancewith the detected contact area. For example, as the detected contactarea increases, the finger degree D19 may be increased.

Further, in the exemplary embodiment described above, whether theoperator performs an operation with the finger or the pen is determinedon the basis of the characteristic of the input coordinate dataoutputted from the touch panel 12. However, in another embodiment, theoperator may previously designate whether to perform an operation withthe finger or the pen, by using any input device. Then, the degree ofcorrecting a coordinate may be changed between two levels when anoperation with the finger is designated and when an operation with thepen is designated.

Further, instead of the coordinate processing system 10 shown in FIG. 1,an information processing apparatus including the touch panel 12, suchas a hand-held game apparatus, thin client, portable computer, ormonitor including a touch panel, may be used.

Further, instead of the pressure-sensitive type touch panel 12, anothertype of touch panel (a capacitance type touch panel) may be used.However, for example, in a capacitance type touch panel, fluctuation andinterruption of the input coordinate which occur when an operation isperformed with the finger do not remarkably appear as in apressure-sensitive type touch panel. When a capacitance type touch panelis used, whether the operator performs an operation with the finger orthe pen may be determined on the basis of a contact area with anoperation surface.

Further, instead of the touch panel 12, any coordinate input devicehaving the same function as that of a touch panel, such as a touch pad,(i.e., a coordinate input device which is capable of detecting a contactposition of a finger or a pen with respect to an operation surfacethereof) may be used.

Further, in the exemplary embodiment described above, a plurality of theprocesses shown in FIGS. 12 and 13 is executed by a single computer (theprocessor 18). However, in another embodiment, a plurality of computersmay share the execution of these processes. In still another embodiment,some or all of these processes may be realized by a dedicated circuit.

Further, in the exemplary embodiment described above, a plurality of theprocesses shown in FIGS. 12 and 13 is executed in the single informationprocessing apparatus 14. However, in another embodiment, a plurality ofinformation processing apparatuses may share the execution of theseprocesses.

Further, in the exemplary embodiment described above, the coordinateprocessing program D10 is loaded from the internal storage unit 20 orthe external storage unit 24 into the main memory 22. However, inanother embodiment, the coordinate processing program D10 may besupplied from another information processing apparatus (e.g., a server)to the information processing apparatus 14.

While the technology has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It willbe understood that numerous other modifications and variations can bedevised without departing from the scope of the technology.

What is claimed is:
 1. A computer-readable storage medium having storedtherein a coordinate processing program for processing input coordinatedata which is outputted from a coordinate input device and indicates acontact position with respect to an operation surface of the coordinateinput device, the coordinate processing program causing a computer tooperate as: a determination section configured to determine an inputelement which is in contact with the operation surface from among aplurality of types of input elements having different contact areas withthe operation surface; and a coordinate corrector configured to correctthe input coordinate data in accordance with a result of thedetermination of the determination section.
 2. The computer-readablestorage medium according to claim 1, wherein the coordinate correctorincludes a shape corrector configured to correct the input coordinatedata such that a shape of an input trajectory represented by the inputcoordinate data is smoothened, and the shape corrector corrects theinput coordinate data at a degree which changes in response to theresult of the determination of the determination section, such that theshape of the input trajectory is smoothened.
 3. The computer-readablestorage medium according to claim 2, wherein the shape correctorcorrects the input coordinate data in accordance with the result of thedetermination of the determination section, such that responsiveness tovariation of the contact position changes.
 4. The computer-readablestorage medium according to claim 3, wherein the shape correctorincludes a following coordinate calculator configured to calculate afollowing coordinate which follows a target coordinate, which is set onthe basis of the input coordinate data, at a rate which changes inresponse to the result of the determination of the determinationsection, and the coordinate corrector corrects the input coordinate dataon the basis of the following coordinate.
 5. The computer-readablestorage medium according to claim 4, wherein when it is determined bythe determination section that a first input element having a relativelylarge contact area is in contact with the operation surface, thefollowing coordinate calculator calculates the following coordinate suchthat the following coordinate follows the target coordinate at a smallerrate than that when it is determined that a second input element havinga relatively small contact area is in contact with the operationsurface.
 6. The computer-readable storage medium according to claim 4,wherein the following coordinate follows the target coordinate by beingupdated such that the following coordinate approaches the targetcoordinate by a predetermined rate of a distance from the followingcoordinate to the target coordinate.
 7. The computer-readable storagemedium according to claim 4, wherein the target coordinate is anallowance coordinate which, when being distant from an input coordinateindicated by the input coordinate data by more than a distance whichchanges in response to the result of the determination of thedetermination section, moves toward the input coordinate so as to belocated at a position away from the input coordinate by the distance. 8.The computer-readable storage medium according to claim 2, wherein theshape corrector includes an allowance coordinate calculator configuredto calculate an allowance coordinate which, when being distant from aninput coordinate indicated by the input coordinate data by more than adistance which changes in response to the result of the determination ofthe determination section, moves toward the input coordinate so as to belocated at a position away from the input coordinate by the distance,and the coordinate corrector corrects the input coordinate data on thebasis of the allowance coordinate.
 9. The computer-readable storagemedium according to claim 8, wherein when it is determined by thedetermination section that a first input element having a relativelylarge contact area is in contact with the operation surface, theallowance coordinate calculator increases the distance as compared tothat when it is determined that a second input element having arelatively small contact area is in contact with the operation surface,and calculates the allowance coordinate.
 10. The computer-readablestorage medium according to claim 1, wherein the coordinate correctorincludes an interruption compensator configured to, when a period duringwhich a contact position indicated by the input coordinate data istemporarily interrupted is within a predetermined time, determine thatcontact continues even during the period and correct the inputcoordinate data, and the interruption compensator changes thepredetermined time in response to the result of the determination of thedetermination section.
 11. The computer-readable storage mediumaccording to claim 10, wherein when it is determined by thedetermination section that a first input element having a relativelylarge contact area is in contact with the operation surface, theinterruption compensator increases the predetermined time as compared tothat when it is determined that a second input element having arelatively small contact area is in contact with the operation surface,and corrects the input coordinate data.
 12. The computer-readablestorage medium according to claim 1, wherein the coordinate correctorcorrects the input coordinate data in real time.
 13. Thecomputer-readable storage medium according to claim 1, wherein thedetermination section determines whether the input element which is incontact with the operation surface is a finger or a pen, on the basis ofthe input coordinate data outputted from the coordinate input device.14. The computer-readable storage medium according to claim 13, whereinthe determination section includes a finger degree variable updatesection configured to update a value of a finger degree variablerepresenting a degree of likelihood of a finger, on the basis of theinput coordinate data outputted from the coordinate input device, andthe coordinate corrector corrects the input coordinate data inaccordance with the value of the finger degree variable.
 15. Thecomputer-readable storage medium according to claim 13, wherein thedetermination section determines whether the input element which is incontact with the operation surface is a finger or a pen, on the basis ofwhether or not a shape of an input trajectory represented by the inputcoordinate data outputted from the coordinate input device is apredetermined shape.
 16. The computer-readable storage medium accordingto claim 13, wherein the determination section determines whether theinput element which is in contact with the operation surface is a fingeror a pen, on the basis of whether or not a continuous contact timeindicated by the input coordinate data outputted from the coordinateinput device is less than a predetermined time.
 17. Thecomputer-readable storage medium according to claim 13, wherein thedetermination section determines whether the input element which is incontact with the operation surface is a finger or a pen, on the basis ofwhether or not a continuous non-contact time indicated by the inputcoordinate data outputted from the coordinate input device is less thana predetermined time.
 18. A coordinate processing apparatus forprocessing input coordinate data which is outputted from a coordinateinput device and indicates a contact position with respect to anoperation surface of the coordinate input device, the coordinateprocessing apparatus comprising: a determination section configured todetermine an input element which is in contact with the operationsurface from among a plurality of types of input elements havingdifferent contact areas with the operation surface; and a coordinatecorrector configured to correct the input coordinate data in accordancewith a result of the determination of the determination section.
 19. Acoordinate processing system for processing input coordinate data whichis outputted from a coordinate input device and indicates a contactposition with respect to an operation surface of the coordinate inputdevice, the coordinate processing system comprising: a determinationsection configured to determine an input element which is in contactwith the operation surface from among a plurality of types of inputelements having different contact areas with the operation surface; anda coordinate corrector configured to correct the input coordinate datain accordance with a result of the determination of the determinationsection.
 20. A coordinate processing method executed by a computer of acoordinate processing system for processing input coordinate data whichis outputted from a coordinate input device and indicates a contactposition with respect to an operation surface of the coordinate inputdevice, the coordinate processing method comprising the steps of:determining an input element which is in contact with the operationsurface from among a plurality of types of input elements havingdifferent contact areas with the operation surface; and correcting theinput coordinate data in accordance with a result of the determination.